# 导入所需的库
import pandas as pd  # 用于数据操作和分析
import matplotlib.pyplot as plt  # 用于绘制图形
import matplotlib  # 用于设置图形的各种参数

# 加载数据
file_path = '总账.xlsx'  # 定义 Excel 文件的路径
data = pd.read_excel(file_path)  # 从 Excel 文件中读取数据并存入 DataFrame

# 过滤金额大于3000000的记录
data = data[data['金额(元)'] <= 3000000]  # 仅保留金额不超过3000000的记录

# 确保绘图时可以正确显示中文字符
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体为 SimHei，以显示中文

# 过滤相关的列和年份范围（2005-2024）
data = data[['资产名称', '金额(元)', '取得日期']]  # 仅保留需要的列
data = data.dropna(subset=['资产名称', '取得日期'])  # 删除 '资产名称' 或 '取得日期' 为空的行
data['年份'] = data['取得日期'].dt.year  # 从 '取得日期' 列提取年份并新建 '年份' 列
# 仅保留年份在2005到2024之间的记录
data = data[(data['年份'] >= 2005) & (data['年份'] <= 2024)]

# 计算每年的总金额
yearly_total_cost = data.groupby('年份')['金额(元)'].sum().to_dict()  # 按年份分组并计算每年的金额总和，转换为字典

# 检查是否有数据可以绘制
if yearly_total_cost:  # 如果字典不为空，表示有数据
    # 按年份排序
    years = list(yearly_total_cost.keys())  # 获取年份列表
    costs = list(yearly_total_cost.values())  # 获取对应的金额列表

    # 绘制结果
    plt.figure(figsize=(12, 6))  # 创建一个12x6英寸的图形
    plt.plot(years, costs, marker='o', linestyle='-', color='b', label='年度资产投入总额')  # 绘制折线图
    plt.title("逐年资产投入总额")  # 设置图表标题
    plt.xlabel("年份")  # 设置 x 轴标签
    plt.ylabel("资产投入金额 (元)")  # 设置 y 轴标签
    plt.xticks(years)  # 设置 x 轴刻度为年份
    plt.legend()  # 显示图例
    plt.grid(True)  # 显示网格线
    plt.show()  # 展示图形
else:
    print("没有可绘制的数据。")  # 如果没有数据可绘制，则输出提示信息